"""数据容器"""

# 数据容器分为五种，列表，元组，字符串，字典和集合 其中前三种被叫做序列类型。
# 序列通用操作，集合不能分片

s1 = 'str1r'
num = s1.count('r')
print(num)
print('==========')

# 集合，字典，列表等可变对象不能作为集合的元素，因为他们是可变的
# set1 = set(1, 2, 3, [1, 2, 3])
# print(set1)

x = 0.1
y = 0.3
z = 0.4
print(x + x + x == y)
print(round(x + x + x, 1) == round(y, 1))  # 使用round()取精度为1之后判断的结果就为True了
print(x + x + x + x == z)
print('==========')

# set(1, 2, 3, 4)错误的写法，set()函数只能接受可迭代的参数比如列表
set2 = {1, 2, 6, 7}
set3 = {1, 2, 4, 5}

# 集合的运算
# 补集，返回一个新集合，包括集合S和T中元素，但不包括同时在其中的
print(set2.symmetric_difference(set3))
# 差集
print(set2.difference(set3))
# 交集
print(set2.intersection(set3))
# 并集
print(set2.union(set3))
print('==========')

# 列表
# 列表赋值不会简单的将一个已经存在的列表复制给一个新的列表
ls1 = [1, 2, 3]
ls2 = ls1[1:]
print(ls2)
print(ls1 == ls2)
print(ls1[1] == ls2[0])

